<?php

namespace App\Models\Oauth;

use Illuminate\Support\Facades\DB;
use App\Models\Model;

class UserModel extends Model
{


    const TABLENAME = 'tw_base_user';

    //用户的状态 0禁止 1正常 状态
    const USER_STATUS_NOMAL = 1;
    const USER_STATUS_BAN = 0;

    /**
     * 用户来源
     * @global 注册
     */
    const USER_ORIGIN_REGISTER = 0;

    /**
     * @global 通心粉社区
     */
    const USER_ORIGIN_BBS = 1;

    /**
     * @global 企业号通讯录
     */
    const USER_ORIGIN_ENTERPRISE_ = 2;

    /**
     * @global 协同系统
     */
    const USER_ORIGIN_BUSINESS = 3;

    /**
     * @global EBS系统
     */
    const USER_ORIGIN_EBS = 4;

    /**
     * @global QQ
     */
    const USER_ORIGIN_QQ = 5;

    /**
     * @global 新浪
     */
    const USER_ORIGIN_SAEWEIBO = 6;

    /**
     * @global 百度
     */
    const USER_ORIGIN_BAIDU = 7;

    /**
     * @global 微信
     */
    const USER_ORIGIN_MANUAL = 8;

    /**
     * @global 账号同步
     */
    const USER_ORIGIN_SYNC = 9;

    /**
     * @global fbc系统
     */
    const USER_ORIGIN_FBC = 10;

    /**
     * @global 系统导入
     */
    const USER_ORIGIN_EXCEL = 11;

    /**
     * @global 管理员添加（App管理后台）
     */
    const USER_ORIGIN_ADMIN = 19;

    /**
     * @global 手机号快捷登录
     */
    const USER_ORIGIN_SHORTCUT = 21;

    /**
     * @global 手机号验证（默认未通过）
     */
    const MOBILE_IDENT_NO = 0;

    /**
     * @global 手机号验证（通过）
     */
    const MOBILE_IDENT_YES = 1;

    /**
     * 初始化并返回数据库请求构建器
     *
     * @return Illuminate\Support\Facades\DB::table(TABLENAME)
     */
    public static function dbTable()
    {
        return DB::table(self::TABLENAME);
    }


    public static function getUserById($id)
    {
        $where['id'] = $id;
        $where['status'] = self::USER_STATUS_NOMAL;
        return self::dbTable()->select('id', 'name', 'nickname', 'username', 'password', 'mobile', 'sex', 'bbs_uid', 'avatar')->where($where)->first();
    }

    public static function getUserData($where)
    {
        return self::dbTable()->select()->where($where)->first();
    }

    /**
     * 登录
     */
    public static function getUser($userName)
    {
        $where['username'] = $userName;
        $where['status'] = self::USER_STATUS_NOMAL;
        $user = self::getUserData($where);
        if (!$user) {
            unset($where['username']);
            $where['mobile'] = $userName;
            $user = self::getUserData($where);
        }
        return $user;
    }

    /**
     * 添加一个用户
     */
    public static function addUser($data)
    {
        return self::dbTable()->insertGetId($data);
    }

    /**
     *更新用户信息
     */
    public static function updateUser($id, $data = array())
    {
        $where['id'] = $id;
        return self::dbTable()->where($where)->update($data);
    }


}

?>